<!doctype html>



  


<html class="theme-next pisces use-motion">
<head>
  <meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>



<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />












  
  
  <link href="/vendors/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css" />




  
  
  
  

  
    
    
  

  

  

  

  

  
    
    
    <link href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic&subset=latin,latin-ext" rel="stylesheet" type="text/css">
  






<link href="/vendors/font-awesome/css/font-awesome.min.css?v=4.4.0" rel="stylesheet" type="text/css" />

<link href="/css/main.css?v=5.0.1" rel="stylesheet" type="text/css" />


  <meta name="keywords" content="王雨峰, 博客" />








  <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico?v=5.0.1" />






<meta name="description" content="编程的语言多种多样，那么编程语言都有哪些呢？
本期栏目会根据2015年9月TIOBE的排行榜，对当下排名前20的编程语言做一个非常简单的阅览，以后再展开细说。对编程语言的介绍，由于王大水同学孤陋寡闻，难免存在错误，还请大家指出。

TIOBE是一个编程语言的流行度排行榜，每月出一期。这个排行榜只能在一定程度上反映编程语言的流行程度，并不代表某种编程语言更好，没必要过度解读。

#2015年9月排行">
<meta property="og:type" content="article">
<meta property="og:title" content="都有啥编程语言？">
<meta property="og:url" content="http://wangyufeng.org/2015/09/26/programming-language/index.html">
<meta property="og:site_name" content="王雨峰的博客">
<meta property="og:description" content="编程的语言多种多样，那么编程语言都有哪些呢？
本期栏目会根据2015年9月TIOBE的排行榜，对当下排名前20的编程语言做一个非常简单的阅览，以后再展开细说。对编程语言的介绍，由于王大水同学孤陋寡闻，难免存在错误，还请大家指出。

TIOBE是一个编程语言的流行度排行榜，每月出一期。这个排行榜只能在一定程度上反映编程语言的流行程度，并不代表某种编程语言更好，没必要过度解读。

#2015年9月排行">
<meta property="og:image" content="http://7xku3h.com1.z0.glb.clouddn.com/15-9-26/21170782.jpg">
<meta property="og:updated_time" content="2015-09-26T13:56:46.000Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="都有啥编程语言？">
<meta name="twitter:description" content="编程的语言多种多样，那么编程语言都有哪些呢？
本期栏目会根据2015年9月TIOBE的排行榜，对当下排名前20的编程语言做一个非常简单的阅览，以后再展开细说。对编程语言的介绍，由于王大水同学孤陋寡闻，难免存在错误，还请大家指出。

TIOBE是一个编程语言的流行度排行榜，每月出一期。这个排行榜只能在一定程度上反映编程语言的流行程度，并不代表某种编程语言更好，没必要过度解读。

#2015年9月排行">
<meta name="twitter:image" content="http://7xku3h.com1.z0.glb.clouddn.com/15-9-26/21170782.jpg">



<script type="text/javascript" id="hexo.configuration">
  var NexT = window.NexT || {};
  var CONFIG = {
    scheme: 'Pisces',
    sidebar: {"position":"left","display":"post"},
    fancybox: true,
    motion: true,
    duoshuo: {
      userId: 0,
      author: '博主'
    }
  };
</script>




  <link rel="canonical" href="http://wangyufeng.org/2015/09/26/programming-language/"/>

  <title> 都有啥编程语言？ | 王雨峰的博客 </title>
</head>

<body itemscope itemtype="http://schema.org/WebPage" lang="zh-Hans">

  










  
  
    
  

  <div class="container one-collumn sidebar-position-left page-post-detail ">
    <div class="headband"></div>

    <header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-meta ">
  

  <div class="custom-logo-site-title">
    <a href="/"  class="brand" rel="start">
      <span class="logo-line-before"><i></i></span>
      <span class="site-title">王雨峰的博客</span>
      <span class="logo-line-after"><i></i></span>
    </a>
  </div>
  <p class="site-subtitle">随便写点东西，为互联网贡献一些比特~</p>
</div>

<div class="site-nav-toggle">
  <button>
    <span class="btn-bar"></span>
    <span class="btn-bar"></span>
    <span class="btn-bar"></span>
  </button>
</div>

<nav class="site-nav">
  

  
    <ul id="menu" class="menu">
      
        
        <li class="menu-item menu-item-home">
          <a href="/" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-home"></i> <br />
            
            首页
          </a>
        </li>
      
        
        <li class="menu-item menu-item-about">
          <a href="/about" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-user"></i> <br />
            
            关于
          </a>
        </li>
      
        
        <li class="menu-item menu-item-archives">
          <a href="/archives" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-archive"></i> <br />
            
            归档
          </a>
        </li>
      

      
    </ul>
  

  
</nav>

 </div>
    </header>

    <main id="main" class="main">
      <div class="main-inner">
        <div class="content-wrap">
          <div id="content" class="content">
            

  <div id="posts" class="posts-expand">
    

  
  

  
  
  

  <article class="post post-type-normal " itemscope itemtype="http://schema.org/Article">

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
            
            
              
                都有啥编程语言？
              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">
            <span class="post-meta-item-icon">
              <i class="fa fa-calendar-o"></i>
            </span>
            <span class="post-meta-item-text">发表于</span>
            <time itemprop="dateCreated" datetime="2015-09-26T20:05:26+08:00" content="2015-09-26">
              2015-09-26
            </time>
          </span>

          

          
            
          

          

          
          

          
        </div>
      </header>
    


    <div class="post-body" itemprop="articleBody">

      
      

      
        <p>编程的语言多种多样，那么编程语言都有哪些呢？</p>
<p>本期栏目会根据2015年9月TIOBE的排行榜，对当下排名前20的编程语言做一个<em>非常简单</em>的阅览，以后再展开细说。对编程语言的介绍，由于王大水同学孤陋寡闻，难免存在错误，还请大家指出。</p>
<blockquote>
<p>TIOBE是一个编程语言的流行度排行榜，每月出一期。这个排行榜只能在一定程度上反映编程语言的流行程度，并不代表某种编程语言更好，没必要过度解读。</p>
</blockquote>
<p>#2015年9月排行<br><img src="http://7xku3h.com1.z0.glb.clouddn.com/15-9-26/21170782.jpg" alt=""></p>
<p>其实也就前十左右还算是「主流」的编程语言。</p>
<p>#Java</p>
<p>Java语言很牛。近十多年来，Java基本上一直雄踞TIOBE榜首。</p>
<p>Java语言在刚面世的时候（1995年）心气非常大。Java想统一所有的平台，设计者的意思是，「有Java就足够了，其他编程语言都是渣渣」。虽然如今Java并没有这么万能，不过也是很厉害了。Java在企业后台开发、网页后端、Andriod开发、云计算、大数据等领域需求都很大。</p>
<p>Java是非常成熟的面向对象语言，Java宣称「Java语言中的一切都是”对象”」（虽然并不真正如此）。相比C++语言来说，Java是一个更加纯粹的面向对象语言。Java舍弃了很多『危险』的设计，比如指针、比如不让程序员手动操作内存。Java语言的安全性非常不错（相比C++和C），但在效率上就有所牺牲。</p>
<p>学Java的过程，相比学习C语言，是<em>非常</em>幸福的事情。</p>
<p>咱们计算机系的话，一般都是会学Java的。我的个人建议是，体会面向对象的初步思想，这是关键。要明白「继承」、「对象」、「类」这些概念的准确意思。因为任何面向对象语言中，这些东西都是想通的。至于Java语言的语法细节，或者Java的图形库等等细节的东西，不用抠太细了。</p>
<p>啰嗦一下，<strong>最好别用学文科的方法学编程。</strong></p>
<blockquote>
<p>名词解释</p>
<ul>
<li>Java SE。就是咱们平时学Java时所用的Java库的版本。如果大家有玩过「Minecraft」的话，应该还记得在运行MC之前必需安装Java，因为MC就是用Java编写的。你问为何Windows操作系统不自带Java？哈，他们两家公司的恩怨情仇回头还能细说。</li>
<li>Java EE。企业开发用的Java，不懂。</li>
<li>Java ME。M是Micro的意思，一般在单片机版之类的地方用，似乎已经没什么人在用了。</li>
</ul>
</blockquote>
<p>#C</p>
<p>就是咱们正在学的C语言。这算是老前辈了（1972）年，因为C既有「<em>高级</em>程序设计语言」的特点，又能操纵硬件层面的细节，所以很受程序员欢迎。</p>
<p>但是C语言是面向过程的语言，而且C语言中的「指针」「手动内存管理」等特性容易造成BUG，所以如今C语言用的已经不是太多了。但是毕竟是有用的，比如Linux(一种操作系统)大多数的代码由C语言构成。写单片机、数值计算领域，C语言还是用的很广泛的。</p>
<p>#C++<br>也是老牌面向对象语言了。我想出过一个比喻，我觉得用来形容C++语言还是挺恰当的。</p>
<p>「C++语言是一艘航空母舰，攻击力强大。但烧煤的发动机拖累了它。」</p>
<p>啥意思呢？C++语言在设计的时候，为了兼容C语言，便设计为「C语言的超集」，也就是说C++完全向下兼容C语言（从这门语言的名字也能看出来这一点）。这样一来，C++就背上了沉重的历史包袱。</p>
<p>比如为什么咱们能在「Visual C++」这个软件中编写C语言呢？就是这个意思。</p>
<p>#C井</p>
<p>「C#」，<strong>读做「C sharp」</strong>。就是「C 升号」的意思。（变相表达C”++“）</p>
<p>我猜测，如果读「C井」的话，只要读满65535次，有一定几率下辈子投胎M78星云。</p>
<p>C#是微软公司出品的一款编程语言，其实就是模仿Java整出来的一款竞品。C#我没接触过，听说很好用，很好学，很强大。很多桌面程序都是用C#写的。</p>
<p>说白了，你要是Java学得好，C#分分钟就会了。</p>
<p>#Python</p>
<p>Python可火了，啥都能干。Python语言相对优雅，相对速度还不错，相对易于学习。很多国外的大学，计算机专业的入门语言便是Python。听说国内有少数大学也在尝试用Python作为第一门编程语言。</p>
<p>数值计算、网站后端、脚本、还有今天特别火的大数据、机器学习啥的，Python好像都有份。</p>
<p>Python语言的特点之一是强制要求你使用规范的代码缩进。</p>
<p>#PHP</p>
<blockquote>
<p>「PHP」是世界上最好的编程语言。——PHP程序员</p>
</blockquote>
<p>PHP主要是在CGI（即网站后端）用途广泛，是一门非常经典的服务器后端语言。语法和C比较接近。</p>
<p>#JavaScript</p>
<blockquote>
<p>「Java」和「JavaScript」的关系，就如同雷锋和雷峰塔的关系。——知乎用户</p>
</blockquote>
<p>JavaScript的名字中为啥有个Java呢？可以这样简单理解：JavaScript的设计者抱Sun公司（开发Java的公司）大腿。</p>
<p>Javascript如今也是越来越火了，有前后端通吃的气势。</p>
<p>由于当初设计Javascript的人是个「Lisp」语言脑残粉，所以Javascript中的面向对象特性特别难用。但是毕竟人家已经成为了连接网站前后端的唯一语言了，几乎没有竞争对手。所以值得接触一下。</p>
<p>#Visual Basic .NET<br>名词解释</p>
<ul>
<li>Visual Basic，即VB。似乎很多人之前就接触过，就是拖一个个控件，然后就能做出个还算好看的程序。</li>
<li>.NET，我的理解是：微软的一整套东西，合在一起叫.NET。</li>
</ul>
<p>我觉得「Visual Basic .NET」就是咱们平时说的VB。</p>
<p>倒是一门不错的教学语言。我之前还真用Excel中的VB写了一个「生命游戏」，有兴趣请看我Github。</p>
<p>#Perl</p>
<p>没用过，似乎是一种处理字符串非常强大的语言。比如说，Perl内置了「正则表达式」，而正则表达式用来处理字符非常厉害。</p>
<p>似乎Perl和Linux/Unix结合使用的情况比较多。</p>
<p>这也是一门有年头的语言了，大概是20世纪80年代推出的。</p>
<p>#Objective-C</p>
<p>其实也挺老了，本来都快要退出历史舞台了，但正好Apple公司选了了Obj-C语言作为平台开发语言，所以又火了。</p>
<p>不过今天Apple公司也使用新的Swift语言了。不知道Objective-C何去何从。</p>
<p>#Assembly language</p>
<p>就是「汇编语言」的意思。</p>
<p>汇编语言是一种介于「机器语言」（01二进制代码）和「高级语言」（比如C语言）之间的一种语言。</p>
<p>恩…不知道什么人还在用。也许是写底层程序和驱动的吧。</p>
<p>#Ruby</p>
<p>如果说Ruby语言没有汇编语言流行，打死我也是不会信的。所以说这个排行榜看看就好。</p>
<p>Ruby是源自日本的一种编程语言，在网站开发方面非常流行。Github这个社区，最早就是Ruby程序员爱好者建立起来的。</p>
<p>#Delphi</p>
<p>听说这门语言在数据库方面用的比较多，「Dev-C++」这款软件也是用Delphi写的。</p>
<p>不过据我所知，Delphi已经基本退出历史舞台了。Delphi的前身是Pascal。</p>
<p>#Visual Basic</p>
<p>不知道这和Visual Basic .NET有啥区别。</p>
<p>#Pascal<br>想当年这也是挺火的语言。</p>
<p>我初中的时候，比如NOIP竞赛，Pascal和C语言还是并列的关系。他们都是经典的面向过程的语言。在我的指导老师上学的时候，Pascal是必修课，C语言是选修课。可见Pascal昔日的辉煌。</p>
<p>这门语言的名字是为了纪念数学家「帕斯卡」。帕斯卡发明了「加法器」，可谓是人类历史上的第一个「计算机器」。</p>
<p>也已经退出历史舞台了。</p>
<p>#Swift</p>
<p>Swift就是现在Apple公司力推的开发语言。Apple Store里的那些App，如今应该有好多已经是Swift写的了。</p>
<p>#MATLAB</p>
<p>一种主要用于数值计算的软件。但Matlab能干的事儿远不止数值计算，比如算法开发、数据可视化、数据分析、建模仿真等等，都能干。</p>
<p>更纯粹的数值计算软件是「Mathematica」，还有个同类的软件叫「Maple」。</p>
<p>#PL/SQL</p>
<p>PL/SQL是「过程化SQL」的意思，是「Oracle」（即甲骨文）公司独有的。如今Java语言的版权便归属于Oracle。</p>
<p>SQL是「结构化查询语言」的意思，在数据库中有非常广泛的应用。</p>
<p>#R</p>
<p>是一种统计领域中使用较多的语言。比如学经济/金融的同学，或者搞数学建模的同学，大概会接触到R语言吧。</p>
<p>#COBOL</p>
<p>这是一个20世纪60年代就有的语言。在企业/银行的数据管理中运用广泛。</p>
<p>#小结</p>
<p>有一种说法：一个好的计算机专业毕业生，应该掌握</p>
<ul>
<li>一门面向过程的语言</li>
<li>一门面向对象语言</li>
<li>一门脚本语言</li>
</ul>
<p>如果学有余力，最好</p>
<ul>
<li>对函数式语言有所了解</li>
</ul>
<p>打个比方，如果我毕业的时候熟悉C、Java和Python，对Scala有一定了解，就算是符合这个条件了。</p>
<hr>
<p>这个榜单一直排了50种编程语言。后边的语言，有些是应用的领域非常小，有些则是历史遗留产物了。</p>
<p>值得一提的是，排名第48的编程语言是「VHDL」，眼熟吗？</p>
<p>谢谢@刘鑫学长的提醒，数字逻辑这门课要学的是 Verilog HDL，和VHDL还是有些区别。不过他们能干的事儿都差不多。</p>

      
    </div>

    <div>
      
        

      
    </div>

    <div>
      
        

      
    </div>

    <footer class="post-footer">
      

      
        <div class="post-nav">
          <div class="post-nav-next post-nav-item">
            
              <a href="/2015/09/24/too-many-authentication-failures-error/" rel="next" title="ssh 连接时出现 too many authentication failures error">
                <i class="fa fa-chevron-left"></i> ssh 连接时出现 too many authentication failures error
              </a>
            
          </div>

          <div class="post-nav-prev post-nav-item">
            
              <a href="/2015/10/27/DC-regulated-power/" rel="prev" title="直流稳压电源(电路实验1)笔记">
                直流稳压电源(电路实验1)笔记 <i class="fa fa-chevron-right"></i>
              </a>
            
          </div>
        </div>
      

      
      
    </footer>
  </article>



    <div class="post-spread">
      
    </div>
  </div>


          </div>
          


          
  <div class="comments" id="comments">
    
  </div>


        </div>
        
          
  
  <div class="sidebar-toggle">
    <div class="sidebar-toggle-line-wrap">
      <span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
    </div>
  </div>

  <aside id="sidebar" class="sidebar">
    <div class="sidebar-inner">

      

      
        <ul class="sidebar-nav motion-element">
          <li class="sidebar-nav-toc sidebar-nav-active" data-target="post-toc-wrap" >
            文章目录
          </li>
          <li class="sidebar-nav-overview" data-target="site-overview">
            站点概览
          </li>
        </ul>
      

      <section class="site-overview sidebar-panel ">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
          <img class="site-author-image" itemprop="image"
               src="/images/avatar.gif"
               alt="Alan" />
          <p class="site-author-name" itemprop="name">Alan</p>
          <p class="site-description motion-element" itemprop="description">Alan Wang's personal blog.</p>
        </div>
        <nav class="site-state motion-element">
          <div class="site-state-item site-state-posts">
            <a href="/archives">
              <span class="site-state-item-count">57</span>
              <span class="site-state-item-name">日志</span>
            </a>
          </div>

          
            <div class="site-state-item site-state-categories">
              
                <span class="site-state-item-count">9</span>
                <span class="site-state-item-name">分类</span>
              
            </div>
          

          
            <div class="site-state-item site-state-tags">
              
                <span class="site-state-item-count">4</span>
                <span class="site-state-item-name">标签</span>
              
            </div>
          

        </nav>

        

        <div class="links-of-author motion-element">
          
        </div>

        
        

        
        

      </section>

      
        <section class="post-toc-wrap motion-element sidebar-panel sidebar-panel-active">
          <div class="post-toc">
            
              
            
            
              <p class="post-toc-empty">此文章未包含目录</p>
            
          </div>
        </section>
      

    </div>
  </aside>


        
      </div>
    </main>

    <footer id="footer" class="footer">
      <div class="footer-inner">
        <div class="copyright" >
  
  &copy; 
  <span itemprop="copyrightYear">2016</span>
  <span class="with-love">
    <i class="fa fa-heart"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">Alan</span>
</div>

<div class="powered-by">
  Powered by <a class="theme-link" href="https://hexo.io">Hexo</a> 
</div>

<div class="theme-info">
  主题 -
  <a class="theme-link" href="https://github.com/iissnan/hexo-theme-next">
    NexT.Pisces
  </a>
</div>

        

        
      </div>
    </footer>

    <div class="back-to-top">
      <i class="fa fa-arrow-up"></i>
    </div>
  </div>

  

<script type="text/javascript">
  if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
    window.Promise = null;
  }
</script>









  



  
  <script type="text/javascript" src="/vendors/jquery/index.js?v=2.1.3"></script>

  
  <script type="text/javascript" src="/vendors/fastclick/lib/fastclick.min.js?v=1.0.6"></script>

  
  <script type="text/javascript" src="/vendors/jquery_lazyload/jquery.lazyload.js?v=1.9.7"></script>

  
  <script type="text/javascript" src="/vendors/velocity/velocity.min.js?v=1.2.1"></script>

  
  <script type="text/javascript" src="/vendors/velocity/velocity.ui.min.js?v=1.2.1"></script>

  
  <script type="text/javascript" src="/vendors/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>


  


  <script type="text/javascript" src="/js/src/utils.js?v=5.0.1"></script>

  <script type="text/javascript" src="/js/src/motion.js?v=5.0.1"></script>



  
  


  <script type="text/javascript" src="/js/src/affix.js?v=5.0.1"></script>

  <script type="text/javascript" src="/js/src/schemes/pisces.js?v=5.0.1"></script>



  
  <script type="text/javascript" src="/js/src/scrollspy.js?v=5.0.1"></script>
<script type="text/javascript" src="/js/src/post-details.js?v=5.0.1"></script>



  


  <script type="text/javascript" src="/js/src/bootstrap.js?v=5.0.1"></script>



  



  




  
  

  

  

  

</body>
</html>
